SqlServer关闭与启用标识(自增长)列 |
您所在的位置:网站首页 › sqlserver 修改列 › SqlServer关闭与启用标识(自增长)列 |
一般来说大概有2种较好的方案. 1.通过添加列来替换标识列 替换法 1 --添加新列2 ALTER TABLE TABLENAME ADD ID int3 --赋值4 UPDATE TABLENAME SET ID = IDENTITY_ID5 --删除标识列6 ALTER TABLE TABLENAME DROP COLUMN IDENTITY_ID 2.显示值插入(修改会话中的IDENTITY_INSERT ),临时性 ,不彻底该表列性质 SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }
显式值插入 1 --一般是组合使用,已确保会话中IDENTITY_INSERT的完整状态2 SET IDENTITY_INSERT TABLENAME ON --关闭3 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)4 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)5 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)6 SET IDENTITY_INSERT test OFF --开启
关于这种方式,需要注意如下: A.任何时候,一个会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON ,想修改其他表,必须将前一个ON状态改回OFF B.如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用 C.SET IDENTITY_INSERT 的设置是在执行或运行时设置的
当然还有其他的方案,比如通过系统存储过程sp_configure 修改列的属性. 其中选择看场景吧
内容来源:http://www.5aspx.com/sql/2012/5252.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |